﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;

///// <summary>
///// 方块储存的数据
///// </summary>
//public class DiceData
//{
//    public Vector3 diceCoordinate;// 方块坐标
//    public Vector3 DiceCoordinate
//    {
//        get { return diceCoordinate; }
//        set { diceCoordinate = value; }
//    }

//    public GameObject[] grounds;// 面的物体
//    public GameObject[] Grounds
//    {
//        get { return grounds; }
//        set { grounds = value; }
//    }
//}

///// <summary>
///// 面坐标
///// </summary>
//public class GroundCoordinate
//{
//    private Vector3 groundTowards;// 面的朝向
//    /// <summary>
//    /// 面的朝向
//    /// </summary>
//    public Vector3 GroundTowards
//    {
//        get { return groundTowards; }
//        set { groundTowards = value; }
//    }

//    private Vector3 diceCoordinate;// 面所属的方块的坐标
//    /// <summary>
//    /// 面所属的方块的坐标
//    /// </summary>
//    public Vector3 DiceCoordinate
//    {
//        get { return diceCoordinate; }
//        set { diceCoordinate = value; }
//    }

//    private int sufaceNumber;
//    /// <summary>
//    /// 面的编号
//    /// </summary>
//    public int SufaceNumber
//    {
//        get { return sufaceNumber; }
//        set { sufaceNumber = value; }
//    }

//    private DiceController groundC;
//    /// <summary>
//    /// 面的jio本
//    /// </summary>
//    public DiceController GroundC
//    {
//        get { return groundC; }
//        set { groundC = value; }
//    }
//}

/// <summary>
/// 移动数据，包含旋转类型turnType、轴axis角toward、平移距离move和旋转中心turnCenter，起始点From、终点To、旋转对象Target
/// </summary>
public class MoveData
{
    public int Type// 旋转类型 0为方块本地的轴角，1为平移，2为异方块旋转的轴角和旋转中心，3为错误
    { get; set; }

    public Vector3 Axis// 旋转轴
    { get; set; }

    public int Toward// 旋转方向，1为顺时针90°，-1为逆时针90°
    { get; set; }

    public Vector3 Move// 平移距离
    { get; set; }

    public Vector3 TurnCenter  // 旋转中心
    { get; set; }

    public DiceData From // 起始点
    { get; set; }

    public DiceData To // 终点
    { get; set; }
    /// <summary>
    /// 如果是角色，直接使用Player即可
    /// </summary>
    public GameObject Target // 旋转对象（主要用于转向）
    { get; set; }
}
/// <summary>
/// 储存单次行动信息
/// </summary>
public class NextAction
{
    public int ActType { get; set; }
    public MoveData MoveData { get; set; }
    public GameObject AttackTarget { get; set; }
}
///// <summary>
///// 战斗数据，只其一方
///// </summary>
//public class BattleData
//{
//    // TODO buff、更多数值的定义
//    // ！！初始值都应该为负值，便于判断

//    public MonoBehaviour Component // 战斗参与者的管理器（也不晓得有什么用）
//    { get; set; }

//    private int hp = -1;
//    public int HP // 血量
//    {
//        get { return hp; }
//        set { hp = value; }
//    }

//    private int atk = -1;
//    public int ATK // 攻击力
//    {
//        get { return atk; }
//        set { atk = value; }
//    }

//    private int def = -1;
//    public int DEF // 防御力    
//    {
//        get { return def; }
//        set { def = value; }
//    }
//}
/// <summary>
/// Door的From和To面
/// </summary>
public class BloockData
{
    public int From
    { get; set; }

    public int To

    { get; set;}
}